Mit Hilfe von <em>{literal}{/literal}</em> können Sie Bereiche des Templates von der Interpretation durch Smarty ausschließen. Smarty ignoriert damit alles, was zwischen {literal} und {/literal} steht. Dies ist vor allem für Javascript oder andere Blöcke nützlich, die geschwungene Klammern verwenden (Ohne den {literal}-Block würde Smarty versuchen die geschweiften Klammern der Javascript-Funktion zu interpretieren, was zu einem Fehler führen würde).
{literal}
<script>
function meineFunktion() {
alert("ALARM!!");
}
</script>
{/literal}
{ldelim}{rdelim}
Alternativ zu den {literal}{/literal}-Blöcken können ebenfalls {ldelim}{rdelim}-Blöcke verwendet werden. Die Alternative muss an der Stelle von geschweiften Klammern gesetzt werden, damit diese nicht als Funktionsaufruf erkannt werden. Dieser Block kann einige {literal}{/literal}-Blöcke sparen, wenn man weiß wie man damit umzugehen hat.
<script>
function meineFunktion() {ldelim}
alert("ALARM!!");
{rdelim}
</script>